With the rapid development of computer technology, the need for protecting digital intellectual property is increasing.
Various applications typically use a licensing method to protect their digital intellectual property to prevent users from using the applications on unauthorized equipment, i.e., the equipment is only permitted to run an application when the application has successfully validated the license of the equipment on which the application is located. For example, for an application developed using the Java language, in the source code relating to the application, a segment of specified code is used to validate the license of the equipment on which the application is located, and determines whether the equipment is permitted to run the application based on the validation results. If the license to run the application is valid, the equipment is allowed to run the application; otherwise, the equipment is denied permission to run the application.
However, for applications that use interpreted languages such as Java, because attackers are able to perform a decompilation analysis on an application to obtain source code for the application, and thereby maliciously modify code in the source code used for determining the validity of the license, for example, by modifying the logic of the segment of code so that if the license is determined to be invalid, the equipment is still permitted to run the application. In this scenario, unauthorized equipment can run the application normally. Therefore, a licensing approach is unable to prevent attackers from executing the application normally on unauthorized equipment.